The present disclosure relates to memory devices, and more particularly, to a method and apparatus for managing an erase count of a semiconductor memory device.
Flash memory is a type of non-volatile memory which is physically compact and can provide a high degree of integration and thus has recently been used in various mobile applications, such as mobile phones, MP3 players, digital cameras, camcorders, universal serial bus (USB) drives, personal digital assistants (PDAs), navigation systems, and e-books. Furthermore, solid state drives (SSDs) employing such flash memory have replaced in computer systems large-capacity hard discs using a motor, such as in laptop computers or net books, which need to have a compact structure and low power consumption. This trend is expected to continue to increase.
In flash memory, an erase operation is typically performed before a storage block therein is programmed but the number of times that a flash memory block can be erased is limited. For example, from among various NAND flash memory devices, a single-level cell (SLC) that has a 1-bit storage space can have erasures performed about one million times, and a multi-level cell (MLC) that has a 2-bit storage space or more can have erasures performed about one hundred thousands times.
The lifetime of flash memory is determined by the number of times that the flash memory is erased. Thus, if erase and program operations are concentrated on one certain block in flash memory, then the lifetime of the whole flash memory may be shortened even though most of cells are not worn. Accordingly, it becomes important that all memory cells in flash memory be uniformly programmed and erased such that the lifetime of the flash memory can be increased.
In this regard, memory systems can employ various wear leveling mechanisms, each having varying levels of longevity enhancement. Those of ordinary skill in the art will appreciate that wear leveling, wherein a wear leveling algorithm tracks the least used physical location or block to identify where to next write data, is generally performed to change the physical location or block related to a particular logic block address (LBA) so that the same LBA may not be related to the same physical location or block.
Also, it becomes important to continuously monitor the degree to which each block of flash memory is worn so that wear leveling can be effectively performed.